/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package com.appspot.trick.it.admin;

import java.util.List;

/**
 *
 * @author takahara
 */
public class Util {
    
    /**
     * リストをカンマ区切りの文字列に変換
     * @param keywordList
     * @return 
     */
    public static String keywordListToString(List<String> keywordList) {

        String keyWord = null;
        for (String keyWordTmp : keywordList) {
            
            if (!keyWordTmp.trim().equals("")) {
                if (keyWord == null) {
                    keyWord = keyWordTmp;
                } else {

                    keyWord = keyWord + "," + keyWordTmp;
                }
            }
        }

        return keyWord;

    }
    
    /**
     * HTML エスケープ
     * @param input
     * @return
     */
    public static String htmlEscape(String input) {
        input = substitute(input, "&",  "&amp;");
        input = substitute(input, "<",  "&lt;");
        input = substitute(input, ">",  "&gt;");
        //        input = substitute(input, "\"", "&quot;");
        return input;
    }

    /**
     * HTML アンエスケープ
     * @param input
     * @return
     */
    public static String htmlUnescape(String input) {
        input = substitute(input, "&amp;", "&");
        input = substitute(input,  "&lt;", "<");
        input = substitute(input,  "&gt;", ">");
        return input;

    }
    
    public static String htmlTagRemover(String str) {
        // 文字列のすべてのタグを取り除く
        return str.replaceAll("<.+?>", "");
    }
    
    /**
     * 文字列の置換を行う
     *
     * @param input 処理の対象の文字列
     * @param pattern 置換前の文字列
     * @oaram replacement 置換後の文字列
     * @return 置換処理後の文字列
     */
    static private String substitute(String input, String pattern, String replacement) {
        // 置換対象文字列が存在する場所を取得
        int index = input.indexOf(pattern);

        // 置換対象文字列が存在しなければ終了
        if(index == -1) {
            return input;
        }

        // 処理を行うための StringBuffer
        StringBuffer buffer = new StringBuffer();

        buffer.append(input.substring(0, index) + replacement);

        if(index + pattern.length() < input.length()) {
            // 残りの文字列を再帰的に置換
            String rest = input.substring(index + pattern.length(), input.length());
            buffer.append(substitute(rest, pattern, replacement));
        }
        return buffer.toString();
    }
    
    /**
     * すべてのHTMLタグ削除
     * @param str
     * @return 
     */
    public static String HtmlTagRemover(String str) {
	// 文字列のすべてのタグを取り除く
	return str.replaceAll("<.+?>", "");
}
    
}
